Advances in integrated circuit technology have made it possible to embed an entire system, such as including a processor core, a memory controller, and a bus, in a single semiconductor chip. This type of chip is commonly referred to as a system-on-chip (SoC). Other SoCs can have different components embedded therein for different applications. The SoC provides many advantages over traditional processor-based designs. It is an attractive alternative to multi-chip designs because the integration of components into a single device increases overall speed while decreasing size. The SoC is also an attractive alternative to fully customized chips, such as an application specific integrated circuit (ASIC), because ASIC designs tend to have a significantly longer development time and larger development costs. A configurable SoC (CSoC), which includes a processing system (PS) and programmable logic (PL), has been developed to implement a programmable semiconductor chip that can obtain benefits of both programmable logic and SoC.
An application processor in a PS of an SoC includes a built-in memory management unit (MMU) that provides for virtual-to-physical address translation. In addition, the PS can include a system MMU (SMMU) for use by other PS masters without a built-in MMU. In addition, PL masters can also use the PS SMMU for virtualization, but only by having their traffic routed through the PS, which may be undesirable in some applications. For example, one class of PL masters are circuits with internal caches. Such PL masters require address translation prior to the cache access and therefore cannot route their traffic through the PS for the purpose of using the PS SMMU.